package polymorphism; 
 // : polymorphism/StaticPolymorphism.java
// Static methods are not polymorphic.

class StaticSuper {
    public static String staticGet() {
        return "Base staticGet()";
    }

    public String dynamicGet() {
        return "Base dynamicGet()";
    }
}


class StaticSub extends StaticSuper {
    public static String staticGet() {
        return "Derived staticGet()";
    }

    public String dynamicGet() {
        return "Derived dynamicGet()";
    }
}


/**
 * 静态方法不具有多态性
 * @title StaticPolymorphism
 * @author liujiaze@zbj.com
 * @date 2017年8月15日 下午5:25:49
 * @since v1.0.1
 */
public class StaticPolymorphism {
    public static void main(String[] args) {
        StaticSuper sup = new StaticSub(); // Upcast
        System.out.println(sup.staticGet());
        System.out.println(sup.dynamicGet());
    }
} /*
   * Output:
   * Base staticGet()
   * Derived dynamicGet()
   */// :~
